1. Field of the Invention
This invention relates in general to computer-implemented database management systems, and, in particular, to monitoring a large parallel database.
2. Description of Related Art
A database is a collection of stored data that is organized as tables. A table consists of rows and columns of data. The rows are formally called tuples. A database will typically have many tables and each table will typically have multiple tuples and multiple columns. The tables are usually stored on direct access storage devices (DASD) such as magnetic or optical disk drives for semi-permanent storage.
Databases generally have indexes, configuration files, and transaction logs. Database indexes contain a list of keywords for identifying a unique tuple. A database configuration file contains configuration information about the database and information about the database manager. Transaction logs contain a record of all transactions performed on the database.
A parallel database partitions a database over one or more nodes, e.g., from one to hundreds. A database partition is a part of a database. Database partitions have their own data, indexes, configuration files, and transaction logs. In a parallel database, the data in a table can be contained in one or more database partitions. Typically, when a table is on multiple partitions, some of its tuples are stored in one partition and some of its tuples are stored in other partitions. Such a division of a table is called horizontal partitioning.
Database performance is usually important to users. As used herein, the term user is a generic term for a computer user or an enterprise that maintains large amounts of data. Users may monitor the database performance of both non-parallel databases and parallel databases. Monitoring a database typically involves acquiring performance information from an interface exposed by a database instance and evaluating the information for threshold violations or "out of norm" conditions.
Monitoring a non-parallel database generally includes collecting performance statistics of a database. The performance statistics can be used to calculate a performance value for a non-parallel database, using, for example, a predefined formula. The performance value is then compared to a predefined threshold value. When monitoring the performance of a parallel database, some monitors collect performance data from a node and provide the user with a single performance value. Other monitors, referred to as summary monitors, access performance data from multiple nodes. These monitors are typically used when data from multiple nodes is essential to obtaining a meaningful result. For example, data from multiple nodes may be essential when calculating an average value or a maximum value. Hereinafter, the term monitor refers to a summary monitor.
Oftentimes, the monitor must collect the performance data from multiple nodes within a predefined time limit. During the time limit, the monitor may not be capable of collecting statistics from all of the partitioned databases. Overhead will be produced at the monitor to enable the collection of the monitoring statistics.
Turning on the performance statistics also reduces the performance of the database manager and lengthens the time of performing a transaction. Therefore, there is a need for a parallel database monitoring system that returns performance data to a user within a specified time limit and minimizes overhead.